package com.qf.product.service.impl;

import com.qf.dto.PageDto;
import com.qf.product.entity.Product;
import com.qf.product.mapper.ProductMapper;
import com.qf.product.service.ProductService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qf.vo.PageResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;

import java.util.List;

/**
 * <p>
 * 产品表 服务实现类
 * </p>
 *
 * @author xjj
 * @since 2023-10-31
 */
@Service
public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> implements ProductService {

    @Autowired
    private ProductMapper productMapper;

    @Override
    public PageResult<Product> pageInfo(PageDto<Product> pageDto) {
        String name = null;
        String tenantId = null;
        String productKey = null;
        String areaCode = null;
        //条件判断
        if (!StringUtils.isEmpty(pageDto.getWhere().getName())){
            name = pageDto.getWhere().getName();
        }
        if (!StringUtils.isEmpty(pageDto.getWhere().getTenantId())){
            tenantId = pageDto.getWhere().getTenantId();
        }
        if (!StringUtils.isEmpty(pageDto.getWhere().getProductKey())){
            productKey = pageDto.getWhere().getProductKey();
        }
        if (!StringUtils.isEmpty(pageDto.getWhere().getAreaCode())){
            areaCode = pageDto.getWhere().getAreaCode().replace(",","-");
        }
        //获取所有的Product列表
        List<Product> productList = productMapper.findAll(pageDto,name,tenantId,productKey,areaCode);
        //查询总条数
        Long count = productMapper.count(pageDto,name,tenantId,productKey,areaCode);
        //计算总页数
        Long pages = (count + pageDto.getSize() - 1) / pageDto.getSize();
        //封装数据
        return new PageResult<>(count,pages,productList);
    }
}
